#pragma once
#include <map>
#include <fstream>
#include <iostream>

using namespace std;

namespace U33
{
	class CalculateWords
	{
	private:
		map<string, int> ma;
	public:

		CalculateWords()
		{
		}

		~CalculateWords()
		{
		}

		void readFromFile()
		{
			ifstream fin;
			fin.open("nils_holgersson.txt");
			string s;
			while (fin.good())
			{
				fin >> s;
				for (auto &m : ma)
				{
					if (!m.first.compare(s))
					{
						m.second++;
					}
				}
				ma.insert(std::pair<string, int>(s, 1));
			}
		}

		int findMax(string &ord)
		{
			int max = 0;
			string word;
			for (auto &m : ma)
			{
				if (m.second > max)
				{
					max = m.second;
					ord = m.first;
				}
			}
			return max;
		}

	};
}



//#pragma once
//#include <map>
//#include <fstream>
//#include <iostream>
////#include <string>
//
//using namespace std;
//
//namespace U33
//{
//
//	class CalculateWords
//	{
//
//	private:
//		map<string, int> words;
//
//	public:
//
//		CalculateWords()
//		{
//		}
//
//		~CalculateWords()
//		{
//		}
//
//		void ReadFromFile()
//		{
//			ifstream fin;
//			fin.open("nils_holgersson.txt");
//			string s;
//			while (fin.good())
//			{
//				fin >> s;
//				for (auto word : words)
//				{
//					if (!word.first.compare(s))
//					{
//						word.second++;
//					}
//				}
//				words.insert(std::pair<string, int>(s, 1));
//			}
//		}
//
//		int MostUsedWord(string &ord)
//		{
//			int max = 0;
//			string word;
//			for (auto w : words)
//			{
//				if (w.second > max)
//				{
//					max = w.second;
//					ord = w.first;
//				}
//			}
//			return max;
//		}
//	};
//}

